package HelpOther;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 基础汇率换算应用
 * 我们假设有四个币种，人民币:CNY 美元：USA 日元：YEN 韩元：KRW
 * 其中 :
 * CNY:USA=7:1
 * CNY:YEN=1:100
 * CNY:KRW=1:1000
 * USA:YEN=1:500
 * USA:KRW=1:200
 * YEN:KRW=1:100
 * 上面四个币种的的换算关系现在都知道了，我们首先根据前面的关系进行一个汇率换算的基础应用实现
 */
public class ExchangeRate {
    public Map<String,Double> exchange;

    /**
     * 这里是初始化币种汇率的方法，一般来说是使用配置的方式进行读取载入的
     * 这里只是为了演示
     */
    public ExchangeRate(){
        exchange=new HashMap<>();
        exchange.put("CNY:USA",7.000);
        exchange.put("CNY:YEN",0.010);
        exchange.put("CNY:KRW",0.001);
        exchange.put("USA:YEN",0.002);
        exchange.put("USA:KRW",0.005);
        exchange.put("YEN:KRW",0.010);
    }

    /**
     * 汇率转换组件，根据入参ccy1和ccy2得到两个币种的汇率比ccy1:ccy2
     * @param ccy1 第一个币种
     * @param ccy2 第二个币种
     * @return ccy1:ccy2
     */
    public double Exchange(String ccy1,String ccy2){
        double result=-1;
        String exchangeStr1=ccy1+":"+ccy2;
        String exchangeStr2=ccy2+":"+ccy1;
        if(exchange.get(exchangeStr1)==null){
            if(exchange.get(exchangeStr2)!=null){
                result=1/exchange.get(exchangeStr2);
            }else {
                return  -1;
            }
        }else{
            result=exchange.get(exchangeStr1);
        }
        return result;
    }
    public static void main(String[] args) {
        ExchangeRate exchangeRate=new ExchangeRate();
        String ccy1=null;
        String ccy2=null;
        Scanner scanner=new Scanner(System.in);
        System.out.println("欢迎进入汇率转换系统，首先请输入你的本币种：");
        ccy1=scanner.nextLine();
        System.out.println("请输入你的目标币种:");
        ccy2=scanner.nextLine();
        System.out.println(ccy1+":"+ccy2+"的汇率转换比为:");
        System.out.println(exchangeRate.Exchange(ccy1,ccy2));
    }
}
